home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
pc
/
LOGIC Apple II 5.25" Library - DOS Part 7
/
DOS228.dsk
/
KERMIT.DOC.txt
< prev
next >
Wrap
Text File
|
2012-02-16
|
57KB
|
1,348 lines
1. Apple II Kermit
Authors: Antonino N. J. Mione (Stevens Institute of Technology),
Peter Trei (Columbia University),
Ted Medin (NOSC)
Version: 3.84
Date: 1988 July
Kermit-65 Capabilities At A Glance:
Local operation: Yes
Remote operation: Yes
Transfers text files: Yes
Transfers binary files: Yes
Wildcard send: Yes
^X/^Y interruption: Yes
Filename collision avoidance: Yes
Can time out: Yes
8th-bit prefixing: Yes
Repeat count prefixing: No
Alternate block checks: No
Terminal emulation: Yes (VT52, VT100)
Communication settings: Yes
Transmit BREAK: Yes
IBM communication: Yes
Transaction logging: No
Session logging (raw download): Yes
Raw upload: No
Act as server: Yes
Talk to server: Yes
Advanced commands for servers: Yes
Long packets: Yes
Sliding windows: No
Local file management: Yes
Handle file attributes: No
Command/init files: Yes
Printer control: Yes
Kermit-65 is a program that implements the Kermit file transfer protocol for
the Motorola 6502 processor family (hence the name, Kermit-65) on the Apple II
microcomputer system. It is written in 6502 assembly language and should run
on any Apple II or compatible running DOS 3.3 or PRODOS 8. This section will
describe the things you should know about the file system in order to make ef-
fective use of Kermit, and then it will describe the special features of the
Kermit-65 program.
1.1. Supported Systems and Devices
There are several different Apple II's which can run Kermit-65. Kermit will
have no problems running on an Apple II, II+, //e, //c or //gs system. Of the
different communication devices available for the Apple II, Kermit-65 supports
the ones shown in Table 1-1.
-------------------------------------------------------------------------------
AIO II (Uses the Apple Com Card driver??? - untested)
ALS dispatcher (Uses the Apple Com Card driver)
Apple Com Serial Card
ASIO (Uses the Apple Com Card driver??? - untested)
Apple Super Serial Card & //c Serial Port
Apple //gs Serial Port
CCS 7710 Serial Card
CCS 7711 (Uses the Apple Com Card driver??? - untested)
D.C. Hayes Micromodem.
Microtek sv-622 Card
Prometheus Versacard (Uses the Apple Com Card driver)
SSM AIO (Uses the Apple Com Card driver??? - untested)
Table 1-1: Apple II Communication Cards Supported by Kermit-65
-------------------------------------------------------------------------------
It is possible that other cards may have operational characteristics very
similar or identical to one of the devices above. If this is the case, it may
work using one of the currently available device drivers. The user may want to
try each of the above options to see if any of them work. Kermit-65 must be
told in which slot the card resides. This may be done with the 'SET' command
(documented below).
1.2. The DOS 3.3 File System
Items of importance which will be discussed in this section include filenames
and file characteristics.
Apple DOS Filenames
Filenames under Apple DOS may contain almost any ASCII character (including
space). It is not recommended that special characters, (i.e. control characters
or spaces) be used in a filename to be transferred by Kermit-65 since they may
cause problems when parsing the filename. Filenames may be up to 40 characters
in length.
Apple DOS File Characteristics
All files in Apple DOS have a file type associated with them which is contained
in the directory entry for the file but is not part of the filename itself.
There are four types of files in DOS 3.3. They are:
1. APPLESOFT BASIC
2. INTEGER BASIC
3. BINARY
4. TEXT
All file types have their data stored in eight-bit bytes although not all of
them need the eighth bit. The two file types containing basic programs required
the eighth bit due to the nature of the data being stored. BINARY files are
images of memory copied into a file. Often, these are machine code programs.
These files require all eight bits. TEXT files normally contain only printable
or carriage control characters. They are stored in the form of seven-bit ASCII
characters but the eighth bit should always be set since Apples manipulate all
text internally as 'Negative ASCII'. When transmitting non-text files the user
must insure that both Kermits are handling eight-bit data so that no infor-
mation is lost. If an eight-bit data path is not available (i.e. the remote
Kermit needs to do parity checking with the eigth bit), then eight-bit quoting
should be used. Of course, BINARY files as well as Apple BASIC files will not
have much meaning on a different system. If the user desires to edit a BASIC
file on a mainframe, for instance, s/he must convert it to a TEXT file before
sending it over. After receiving the file back on the Apple, the user may con-
vert it back to BASIC once again. The reason BASIC files would be meaningless
to a different machine is that the Apple stores BASIC keywords as single
character tokens to save space and processing time. To convert a BASIC program
to and from a TEXT file, consult the Apple DOS 3.3 Manual. File information
can be obtained by issuing the CATALOG command. For example:
]CATALOG
DISK VOLUME 010
*A 002 HELLO
B 078 KERMIT
A 002 READER
T 005 TESTFILE
]
When Kermit-65 is receiving a file, the file it creates on diskette will be of
the type indicated by the FILE-TYPE parameter. The file will always be left in
an unlocked state after it is closed by Kermit-65. When sending a file,
Kermit-65 will use the FILE-TYPE parameter to determine how to detect an
End-of-file condition. Thus, it is important to have this set properly in all
cases.
Recommendations for Archiving Files
When using a large system for archiving purposes, there is no reason to convert
Apple Basic programs into text files before sending them if there is no need to
edit them on the mainframe. The FILE-TYPE parameter must always be set cor-
rectly when sending and receiving files. The procedure for archiving files is:
1. Run Kermit on remote system.
2. SET FILE-TYPE TEXT (or APPLESOFT or ...) on Kermit-65.
3. Send the files.
1.3. The PRODOS File System
The PRODOS system is essentialy the same as the DOS system with the exception
that performance has been improved, hardware usage has been expanded and file
names have different syntax. File names are the major importance to the Kermit
system. File names have the following syntax:
/volname/subdirectory1/.../subdirectoryn/filename
where "volname" is the volume name where the file is located. Subdirectory(n)
is a subdirectory on the volume and may be omitted. Filenames are much more
restrictive than DOS filenames. PRODOS filenames are limited to 15 characters
with no imbedded spaces and few special characters, and must begin with an al-
phabetic character. Volname may be omited from the filename by use of the
PREFIX command.
Binary file transfer using PRODOS has its dangers when creating new files.
PRODOS keeps the file's size and starting location in the directory which is of
course not transferred. Therefore a new binary file will have its starting
location 0 which can cause some interesting problems if you try and BRUN the
file. Basic files all start at $801 (it says here) so Kermit creates new basic
files with a starting address of $801.
1.4. Program Operation
Prior to using Kermit-65 for transferring files, the modem interface must be
set to handle data in a certain manner. First, the data format should be 8
data bits and 1 stop bit. Second, the card should be set to no parity. The
baud rate (if adjustable) must be set to whatever rate the modem can handle.
For the D.C. Hayes Micromodem, these parameters are set correctly by default,
so very little has to be done. For the Apple Super Serial Card these are set
from within Kermit-65 except the interrupt switch (sw6-2) which must be set for
interupts on. For the Microtek SV-622, all applicable parameters are set by
Kermit-65. Some mainframes may need parity checking (i.e. most IBM machines).
In this case some parity setting (other than none) will usually work. When
talking with such mainframes, binary and basic files on the Apple cannot be
transferred unless Eighth-bit-quoting is acceptable to the host. If you have
the parameters set correctly then the "connect" command will start Kermit talk-
ing out the communication port.
File transfer is very dependent upon parity. Make sure the host and local
parity are the same. Following is one IBM site's method for file transfer.
We have an IBM 3033 and 4381 and use both 3705/3725 and 7171 or Series/1 front
ends. The differences in front ends as far as any microcomputer Kermit is con-
cerned duplex (local-echo on for the 3705, local-echo off for the 7171 or
Series/1), parity (the two front ends might use different parity, e.g. Mark for
the 3705 and Even for the 7171), and flow control (None for the 3705, XON/XOFF
for the 7171).
In Kermit-65, IBM mainframe users need to set the following parameters:
BAUD Whatever is supported.
PARITY EVEN, ODD, or MARK, whatever your front end requires.
FLOW XON for the 7171, NONE for the 3705.
FLOW DELAY 00
LOCAL-ECHO OFF for 7171, ON for 3705
Conversing With Kermit-65
Kermit-65 reads file KERMIT.INIT from the default drive when started. The
lines of this file are executed one at a time starting at the begining. This
file should be an ASCII text file and contain commands to set up Kermit's
parameters as desired. It will also execute Kermit's other commands. However,
any command which reads a file (like MODEM) or leaves local mode (like CONNECT)
will terminate reading of this file and continue with the command specified.
Use your favorite editor to produce this file. Here's a sample:
set display 80 3
set keyboard 2e
set baud 4800
modem
Kermit-65's prompt is "Kermit-65>". To run Kermit-65 and issue commands to it,
type "brun kermit". Example:
]BRUN KERMIT
NOSC/STEVENS/CU - APPLE ][ KERMIT-65 - VER 3.84
Kermit-65>send testfile
(file is sent...)
Kermit-65>status
(performance statistics are printed...)
Kermit-65>(other commands...)
.
.
.
Kermit-65>exit
]
Like many Kermit programs, Kermit-65 uses a DEC-20 style command parser.
During interactive operation, you may use the ?-prompting help feature ("?")
and recognition (ESC) features while typing commands. A question mark typed at
any point in a command displays the options available at that point; typing an
ESC character causes the current keyword to be completed (or default value to
be supplied). If you have not typed sufficient characters to uniquely specify
the keyword or filename (or if there is no default value) then a beep will be
sounded and you may continue typing. Keywords may be abbreviated to any prefix
that is unique.
Remote and Local Operation
Kermit-65 is normally run in local mode. It may be run as a remote Kermit as
well although there is no advantage to doing things that way. Kermit-65 sup-
ports User-mode commands for talking to a Server, and it does support a limited
server mode.
1.5. Kermit-65 Commands
THE SEND COMMAND
Syntax: SEND filespec
The SEND command causes a file to be sent from the Apple to the remote system.
The Filespec is the name of the file on the Apple diskette to be sent. The
parser will not accept control characters and certain special characters in a
filename (like comma), so the user may have to rename the file before it is
sent. The user may also have problems in filename compatibility with remote
Kermits. If the remote Kermit does not have the facilities to beat the filename
into a format that its system likes, the user may have to rename the file be-
fore sending it. Thanks to Dick Atlee, wildcards are now acceptable when send-
ing files (they have always been acceptable when receiving files). The "*" is a
multiple character wildcard and the "=" is a single character wildcard.
The default disk drive is used for file transfers this can be changed with the
'SET DEFAULT-DISK'(DOS) or 'SET PREFIX'(PRODOS) command (explained below). As
a file is being sent, the screen displays 'SENDING PACKET...' and 'WAITING
PACKET...' followed by the absolute packet number since start of transmission.
If a packet must be transmitted several times and it reaches the maximum retry
count, the transfer will fail and the 'Kermit-65>' prompt will return. If the
remote Kermit sends an error packet, the text of the packet will be displayed
on the screen, the transfer will fail, and the prompt will return. Currently,
a packet can be retransmitted manually by typing anything on the keyboard. If a
'Q' is typed, the entire transmission will be aborted.
THE RECEIVE COMMAND
Syntax: RECEIVE [filespec]
The RECEIVE command tells Kermit-65 to receive a file or file group from the
other system. If only one file is being received, you may include the optional
filespec as the name to store the incoming file under; otherwise, the name is
taken from the incoming file header. If the name in the header is not a legal
filename, Kermit-65 will attempt to change it into something legal. If
FILE-WARNING is on and an incoming file has a name identical to a file already
existing on the diskette, Kermit-65 will issue a warning to the user and at-
tempt to modify the filename to make it unique. Currently, a packet can be
retransmitted manually by typing anything on the keyboard. If a 'Q' is typed,
the entire transmission will be aborted. Filespec is required when xmodem
protocol is used.
THE TAKE COMMAND
Syntax: TAKE filespec
The TAKE commands tells kermit-65 to execute commands from the specified file
similarly to the KERMIT.INIT file. See discussion on KERMIT.INIT above for
details.
THE GET COMMAND
Syntax: GET remote-filespec
The GET command requests a remote Kermit server to send the file or file group
specified by remote-filespec. This command can be used with a Kermit server on
the other end. The remote filespec is any string that can be a legal file
specification for the remote system; it is not parsed or validated locally. So
if the remote Kermit supports wildcards you can specify them in the
remote-filespec. If the remote Kermit is not capable of server functions, then
you will probably get an error message back from it like "Illegal packet type".
In this case, you must connect to the other Kermit, give a SEND command, escape
back, and give a RECEIVE command. Currently, a packet can be retransmitted
manually by typing anything on the keyboard. If a 'Q' is typed, the entire
transmission will be cancelled.
THE CONNECT COMMAND
Syntax: CONNECT
Establish a terminal connection to the remote system using all the current SET
paramaters for terminal type, speed, parity, etc. Get back to Kermit-65 by
typing the escape character followed by the letter C. The escape character is
Control-@ by default. When you type the escape character, several
single-character commands are possible. These are shown in Table 1-2.
You can use the SET ESCAPE command to define a different escape character.
When CONNECTed, Kermit-65 will be passing characters entered on the keyboard to
the remote system, and passing characters from the remote system to the Apple
-------------------------------------------------------------------------------
? List all the possible single-character arguments.
B Send a BREAK signal.
C Close the connection and return to Kermit-65.
D Drop the phone line to the remote and return to Kermit-65.
E rEfresh the screen (useful for clearing garbage on screen).
K TOGGLE Keypad application-mode on/off.
P Toggle the Printer on/off.
R pRint the screen, >= //e required
S Show Status of the connection.
W sWap the del and backspace key.
0 Send a null (ASCII 0).
^@ (or whatever the Connect-Escape character is): Send the
Connect-Escape character itself.
Table 1-2: Kermit-65 Single-Character CONNECT Escape Commands
-------------------------------------------------------------------------------
screen. Incoming characters are interpreted according the selected terminal
type (see SET TERMINAL).
On an Apple II+ with an incomplete keyboard, special characters can be typed by
prefixing regular characters with a right-arrow. On uppercase-only screens,
uppercase characters are shown in inverse and lowercase characters are dis-
played as normal uppercase characters.
Here are the rules for using the special 2/2+ input, to get all printable ASCII
characters, and how they appear on the screen. Special meanings are applied in
various contexts to certain characters. The left and right arrow keys do spe-
cial things, and sometimes the escape key does as well. For letters, the
keyboard is always in either default UPPERCASE mode or default lowercase mode.
When in UPPERCASE, all letters typed are sent out as uppercase. In lowercase,
all letters are sent as lowercase. To reverse the case for the next character
only, hit the right-arrow ("prefix") key. To switch the default case, hit the
prefix-key twice in a row. For funny characters, the prefix key is also used
to get the unusual punctuation characters which are not on the Apple keyboard.
Table 1-3 shows the Apple II/II+ keyboard escapes; the letter "p" represents
the prefix character.
The left-arrow key sends a rubout (ASCII 127). With left-arrow and right arrow
doing special things, it's a little hard to enter their characters (^H and ^U
respectively). There is therefore an escape from prefix mode sequence. If you
type prefix-ESC, the next character is sent without any interpretation. If you
have the capability for upper/lower case, etc, then use the 'SET KEYBOARD' and
'SET DISPLAY' commands to specify complete keyboards.
-------------------------------------------------------------------------------
To Get Type Appearence
Left Square Bracket p( [
Right Square Bracket p) ]
Left Curly Bracket p< {
Right Curly Bracket p> }
Underline p- _
Backslash p/ \
Tilde (wiggle) p^ ~
Vertical Line p. |
Table 1-3: Apple II/II+ Keyboard Escapes
-------------------------------------------------------------------------------
THE HELP COMMAND
Syntax: HELP
Typing HELP alone prints a brief summary of the Kermit-65 commands.
THE MODEM COMMAND
Syntax: MODEM
This command is designed for the hayes smart modem. Typing MODEM causes the
file KERMIT.MODEM in the default drive/path to be used as a menu. You will be
able to select any line in the file to be sent to the modem. Sorry, you can't
back up to a previous menu, you will have to Quit and execute MODEM again. A
"connect" response from the smart modem will cause Kermit leave the modem com-
mand and execute the CONNECT command. For a Hayes smart modem this file should
have commands using text status responses (not numbers). One command per line
with comments allowed after the first space (blank). Use your favorite editor
to produce this ASCII text file. Since the attention Hayes command (AT) re-
quires a delay the "&" character takes one time delay for Kermit. Each "&"
causes a delay of one second on a 6502 chip. If you have a //gs or an ac-
celerator board the timing may change and you may require several to produce a
one second delay. Normally Kermit will wait for 27 seconds (again on a 6502
chip) for the modem to respond, but any character typed on the keyboard will
terminate this wait. You may hear the busy signal and there is no sense wait-
ing any longer, so hit (crash-not so hard) any key on the keyboard.
Following is an example of the KERMIT.MODEM file:
+++&&ATH This should get the Hayes smart modem's attention and then hang
ATDP1234567 Call your local BBS with pulse dialing.
ATDT8901234 Call your work dialup phone with touch tone dialing.
THE CATALOG COMMAND
Syntax: CATALOG
Typing CATALOG produces a catalog (directory) listing of your default drive.
THE DELETE COMMAND
Syntax: DELETE filespec
Typing DELETE causes the file specified to be deleted.
THE SERVER COMMAND
Syntax: SERVER
Typing SERVER alone turns Kermit into a file server to a remote Kermit. Cur-
rently server mode will handle remote "send", "get", "remote" and "fin" com-
mands. Variants of the above commands will probably work but file serving is
very limited at present. Because the Apple requires knowledge of file types
you can use the "remote Kermit" (or whatever the remote Kermit's syntax is)
command to set the file-type on the server. Yes, the server will execute any
command so you can really get the server into trouble (this is not a BBS). You
must have the appropiate file type set before transfering files. You can exit
server mode by typing Control-C (^C) when not doing file transfers or the
remote can of course terminate via the "fin" command.
THE REMOTE COMMAND
Syntax: REMOTE [option character-string]
The only option currently is "kermit". This command submits the command
"character-string" to the remote Kermit's command processor. Currently only
short replys are supported so returned messages about the size of the "receive
packet size" are the limit. The obvious usage is for setting and showing
parameters on the remote Kermit.
THE EXIT AND QUIT COMMANDS
Syntax: EXIT or QUIT
Exit from Kermit-65. You can restart the program, provided you haven't run
anything else, by typing 'CALL 4096'.
THE SET COMMAND
Syntax: SET parameter [option [value]]
Establish or modify various parameters for file transfer or terminal connec-
tion. You can examine their values with the SHOW command. The following
parameters may be SET:
APPLICATION-MODE Set VT100 gs keypad in/out of application mode.
BAUD Which baud rate should the com card use?
CURSOR-KEYS-VT100 In VT100 mode cursor keys give VT100 sequences.
DEBUGGING TERSE or VERBOSE packet information.
DEFAULT-DISK Which Diskette drive is used for DOS 3.3 file transfer?
DISPLAY Which type of screen display is being used?
ESCAPE Character for terminal connection.
FILE-TYPE Type of Apple DOS file being sent/received.
FILE-WARNING Warn users if incoming file exists?
FLOW Should xon/xoff flow control be used to the remote?
KEYBOARD II+ or //e keyboard.
KEYPAD Is there a gs style keypad?
LOCAL-ECHO Full or half duplex switch.
PARITY Character parity to use
PREFIX Which default prefix to use with PRODOS?
PRINTER Should the printer be used for the display?
PROTOCOL Which protocol is to be used for file transfer.
RECEIVE Various parameters for receiving files
SEND Various parameters for sending files
SLOT Which slot # is communication device in?
TIMER Should Kermit observe the receive timeout value?
TERMINAL Which type of terminal should Kermit emulate?
SET APPLICATION-MODE
Syntax: SET APPLICATION-MODE {ON, OFF}
For VT100 emulation with a gs-style keypad you can set the keypad in or out of
application mode. Some computer systems set this via escape sequences so it may
not be necessary to use this command.
SET BAUD
Syntax: SET BAUD value
Value is the baud rate for your communication card. For the super serial and
the microtek it can be 300 to 19200. The actual values will depend upon the
com card you are running with.
SET CURSOR-KEYS-VT100
Syntax: SET CURSOR-KEYS-VT100 {ON, OFF}
In VT100 emulation the cursor keys can also emulate the VT100 cursor keys.
SET DEBUGGING
Syntax: SET DEBUGGING {TERSE, VERBOSE, OFF}
Record the packet traffic on your terminal. Options are: TERSE, Show packet
info only (brief). VERBOSE displays packet field descriptions with packet info
(lengthy). OFF disables display of debugging information (this is the
default).
SET DEFAULT-DISK
Syntax: SET DEFAULT-DISK {SLOT, VOLUME, DRIVE} value
This DOS command will tell Kermit-65 which disk drive should be used for file
transfers. The three parameters which may be set separately are SLOT, VOLUME
and DRIVE. The value for SLOT ranges from 1 to 7. The value for DRIVE is ei-
ther 1 or 2. The value for VOLUME ranges from 0 to 255.
SET ESCAPE
Syntax: SET ESCAPE hexidecimal-number
Specify the control character you want to use to "escape" from remote connec-
tions back to Kermit-65. The default is 0 (Control-@). The number is the hex
value of the ASCII control character, 1 to 37, for instance 2 is Control-B, B
is Control-K.
SET FILE-TYPE
Syntax: SET FILE-TYPE {APPLESOFT, INTEGER, TEXT, BINARY, OTHER hex-value}
This will inform Kermit-65 what type of file is being sent or received. It is
important that this is set correctly since Kermit-65 must create a file of the
appropriate type when receiving (and it has no way of knowing what kind of file
it is). When Kermit-65 is sending, it must also know the type of file since
that tells it how to detect the actual end-of-file. The keywords for this
parameter are listed below. OTHER includes an added hex-value so that the user
may specify the hex value of the file-type. This has meaning only in PRODOS
and allows the user to specify any of the many different file types used in
PRODOS. I would list the hex values vs file type if I had them. So if you have
them send them along and I will include them here.
APPLESOFT The file being transfered is an Applesoft Basic program.
INTEGER The file being sent/received is an Integer Basic program.
TEXT The file being sent/received is an ASCII Text file.
BINARY The file being sent/received is a Binary image.
OTHER The type of file being sent/received is specified by the
hex-value.
SET FILE-WARNING
Syntax: SET FILE-WARNING {ON, OFF}
This tells Kermit-65 whether to warn the user about incoming filenames con-
flicting with existing files or not. If there is a conflict Kermit-65 will at-
tempt to change the file name to something unique.
SET FLOW
Syntax: SET FLOW {OFF, XON, DELAY number}
SET FLOW allows one to use the XON/XOFF protocol when connected to a remote
site. Delay timings are part of this command. Using delay times is probably a
desperation move to keep the screen/printer from losing characters. Setting
the timings will have to be set by experience. Perhaps the best way to set the
timings is to bring the values down until you get failures and then double the
timing figure. Both LOG and SET PRINTER will probably depend on flow control.
OFF Turn off flow control
XON Turn on xon/xoff flow control with the remote
DELAY number Delay the micro until XOFF takes effect
Delay followed by a number (including 0) delays the program for that many mil-
liseconds after the XOFF is given to the remote. This delay allows the XOFF to
take effect before the program continues.
SET KEYBOARD
Syntax: SET KEYBOARD {2P, 2E}
SET KEYBOARD tells Kermit-65 if the user has a full keyboard (2E) or not (2P).
If the user is on an Apple II+, this should be set to 2P (which is the
default). When set to that, character translations are available by using the
right-arrow key as a prefix character, as shown in Table 1-3.
SET KEYPAD
Syntax: SET KEYPAD {ON, OFF}
SET KEYPAD tells Kermit-65 if the user has an Apple//gs-style keypad available.
This is automatically set on a gs but must be set manually on other machines.
With keypad set ON then "VT100 keypad on an Apple keyboard" (see below) will
not be used but the actual keypad will be.
SET PRINTER
Syntax: SET PRINTER {ON, SLOT} number
or SET PRINTER OFF
This allows one to turn the printer on for printing what is displayed on the
screen. With all the different printers and printer cards there will be a lot
of variability here but flow control (XON/XOFF) is probably required when you
are connected to a remote site. The printer can also be toggled on/off via the
ESCAPE character followed by the command "P".
Remember when you use your printer there are a lot of variables here. What was
being sent to the screen now is being sent to your printer. If you were
emulating the VT52 your printer may not know how to handle the escape se-
quences, tabs, etc. It may be you can tell the host you are a tty or some such
device that will give produce control codes that your printer can handle. Some
printers may require the flow control and delay to get readable printing.
ON Turn the printer on, slot number is required.
OFF Turn the printer off.
SLOT number Printer card is in slot "number".
SET PROTOCOL
Syntax: SET PROTOCOL {KERMIT, XMODEM}
SET PROTOCOL tells kermit-65 which protocol to use for file transfer. NOTE:
When xmodem is used you will probably want to change the carrage return and
carrage return, line feed translation in the send/receive parameters. eg. "SET
{SEND,RECEIVE} CR<-CR,LF {ON,OFF}>".
SET SLOT
Syntax: SET SLOT number
This option tells Kermit-65 in which slot the communication device is located.
The range for the number parameter is 1-7.
SET TIMER
Syntax: SET TIMER {ON, OFF}
SET TIMER will turn on or off the timeout checking for receive file transfers.
Since there is no clock for exact timing a loop of instructions has been set up
assuming a 1 megacycle CPU. CPUs which run faster will have to make allowances
via the SET RECEIVE TIMEOUT command.
SET TERMINAL
Syntax: SET TERMINAL {MONITOR, NONE, VT100, VT52}
When TERMINAL is NONE, then all incoming characters (except nulls) are passed
directly to the display.
MONITOR emulation simply displays all the characters received from the remote
(except nulls) without any formating of the screen (40 or 80 characters per
line). Control characters are displayed inverse.
VT100 Emulation
The Kermit-65 VT100 emulator is a small but working set of a true VT100 ter-
minal. It appears to work with most of the standard full screen editors and
processors on BSD UNIX and VAX/VMS machines. Ah Apple//e, //c, or //gs is
probably required with the Apple 80 column text card. Sorry, but the II and
II+ will probably have to use one of the other terminal options. The VT100
keypad has also been defined for the application mode via the OA/CA/game but-
ton. Figure 1-1 shows the Apple keypad looks like to ED (VMS), and Figure 1-2
shows the layout on an Apple//gs keyboard. When using EVE (VMS) the meaning of
the keys will of course change.
As you can see the keypad is physically laid out like the VT100 keypad except
for the lower right corner. Notice that above the keys are the VT100 labels
while within the box (key) is the Apple key label. Also the arrow keys work as
VT100 arrow keys with the OA/CA/game button.
VT52 Emulation
SET TERMINAL VT52 will turn on the VT52 terminal emulation. One thing that is
required is your 80-column card must handle the $16 command in order for
reverse scrolling to work. The Apple//e 80 column card handles this fine. The
VT52 keypad has been defined using the open/closed Apple. For II or II+ one
will have to have a game paddle or joy stick (key shift mod too????) and use
the buttons. When a button/open/closed Apple is pushed then the keys starting
with 6,7,8 & 9 form the top of the keypad. Key 6 is the blue key key 7 is the
red key etc. The keys directly below the 6,7,8 & 9 and shifted one-half key to
the right form the second row of the keypad etc. Every thing is fine until you
get to the last row on the keypad. There the sp bar is 0 and the other two keys
are moved to the upper right as the 0 & - keys. This way the arrow keys are
available as VT52 keys with the OA/CA/game button combination (thanks to Dick
Atlee for this idea). With those two exceptions the keypad is physically
similar to a VT52 keypad. Remember the open/closed Apple or the game button
must be pushed (like the cntl key) to get the keypad emulation. Figure 1-3
should clear up the questions.
The arrow keys work as VT52 arrow keys with the OA/CA/game button.
-------------------------------------------------------------------------------
PF1 PF2 PF3 PF4 .(period)
------- ------- ------- ------- -------
| | |findnxt|delline|select |
| 6 | 7 | 8 | 9 | 0 |
| gold | help | find |undelln| reset |
------- ------- ------- ------- -------
7 8 9 -
------- ------- ------- -------
| page |section|append |delword|
| Y | U | I | O |
|command| fill |replace|undelwd|
------- ------- ------- -------
4 5 6 ,
------- ------- ------- -------
|advanc|backup | cut |delchar|
| H | J | K | L |
|bottom| top | paste |undelch|
------- ------- ------- -------
1 2 3 ENTER
------- ------- ------- -------
| word | eol | char | enter |
| N | M | , | . |
|chgcase|deleol |specins| sub |
------- ------- ------- -------
0
---------------------------------------
bline |
space bar |
openline |
---------------------------------------
Figure 1-1: VT100 Keypad on an Apple Keyboard
-------------------------------------------------------------------------------
THE SHOW COMMAND
Syntax: SHOW [option]
The SHOW command displays various information:
ALL All parameter settings (this is quite long).
BAUD Baud rate of the com card.
CURSOR-KEYS-VT100 Are the cursor keys emulating the VT100 cursor
keys?
DEBUGGING Debugging mode.
DEFAULT-DISK Which Diskette drive is used for file transfer?
-------------------------------------------------------------------------------
PF1 PF2 PF3 PF4
------- ------- ------- -------
| | |findnxt|delline|
| CLEAR | = | / | * |
| gold | help | find |undelln|
------- ------- ------- -------
7 8 9 -
------- ------- ------- -------
| page |section|append |delword|
| 7 | 8 | 9 | + |
|command| fill |replace|undelwd|
------- ------- ------- -------
4 5 6 ,
------- ------- ------- -------
| advanc|backup | cut |delchar|
| 4 | 5 | 6 | - |
| bottom| top | paste |undelch|
------- ------- ------- -------
1 2 3 ENTER
------- ------- ------- -------
| word | eol | char | |
| 1 | 2 | 3 | |
|chgcase|deleol |specins| |
------- ------- -------| enter |
0 . | ENTER |
-----------------------| sub |
| bline |select | |
| 0 | . | |
| openline | reset | |
-------------------------------
Figure 1-2: VT100 Keypad on an Apple//gs or Equivalent Keypad
-------------------------------------------------------------------------------
DEVICE-DRIVER Which communication device is being used?
DISPLAY Which screen display is being used?
ESCAPE Character for terminal connection.
FILE-TYPE Of Apple DOS/PRODOS file being sent/received.
FILE-WARNING Warn users if incoming file exists?
FLOW Should XON/XOFF flow control be used to the remote?
KEYBOARD II+ or //e keyboard.
KEYPAD Does a gs-style keypad exist?
LOCAL-ECHO Full or half duplex switch.
-------------------------------------------------------------------------------
^ is up arrow BLUE RED GRAY ^ .(period) ENTER
------- ------- ------- ------- ------- -------
| | |delline| up |select | enter |
| 6 | 7 | 8 | 9 | 0 | - |
| gold | help |undelln|replace| reset | sub |
------- ------- ------- ------- ------- -------
v is down arrow 7 8 9 v
------- ------- ------- -------
| page |findnxt|delword| down |
| Y | U | I | O |
|command| find |undelwd|section|
------- ------- ------- -------
4 5 6 ->
------- ------- ------- -------
|advanc|backup |delchar| right |
| H | J | K | L |
|bottom| top |undelch|specins|
------- ------- ------- -------
1 2 3 <-
------- ------- ------- -------
| word | eol | cut | left |
| N | M | , | . |
|chgcase|deleol | paste |append |
------- ------- ------- -------
0
---------------------------------------
bline |
space bar |
openline |
---------------------------------------
Figure 1-3: VT52 Keypad on an Apple Keyboard
-------------------------------------------------------------------------------
PARITY Character parity to use
PREFIX Which default prefix to use with PRODOS?
PRINTER Should the printer be used for the display?
PROTOCOL Which protocol is to be used for file transfer.
RECEIVE Various parameters for receiving files
SEND Various parameters for sending files
SLOT Which slot # is communication device in?
TIMER Is the receive timeout on or off?
TERMINAL Which terminal (if any) should Kermit emulate?
The above options are analogous to the equivalent SET commands.
THE STATUS COMMAND
Syntax: STATUS
Give statistics about the most recent file transfer. This includes information
such as number of characters sent/received, number of data characters
sent/received, and last error encountered.
THE LOG COMMAND
Syntax: LOG filespec
When connected to a remote site, log the remote session's output to the
specified file. The file type and file warning protocols are observed. This
command is dependent upon the flow control (XON/XOFF) working. Without flow
control there is little possibility of getting a correct copy of the terminal
session. The logging begins when you connect to the remote and is terminated
when you escape back to the local Kermit with the ESCAPE character followed by
the "C" command.
1.6. Standard Installation
To bootstrap Kermit to the Apple, get the files APP3xx.1 thru APP3xx.2 on a DOS
3.3 diskette, where xx is the current version. Make sure the diskette is a
master diskette and empty. Rename the files to ker3xx.1 thru ker3xx.2. Then:
EXEC KER3xx.1,R25
You will be asked several questions about your hardware and the program should
execute and produce a binary and kermit.init with some starting instructions.
If you want to run Kermit on PRODOS simply use the PRODOS conversion routines
to move the binary and kermit.init to PRODOS. If you want other options as a
regular thing then change file "kermit.init" with your changes. Then make sure
the file is on the same disk as the binary.
Files Supplied for Kermit-65
The following files should be supplied on the distribution tape:
APPAAA.HLP List of files (like this one)
APP384.1 Easy install file 1 (an exec file for DOS 3.3)
APP384.2 Easy install file 2 (an exec file for DOS 3.3)
APPACC.HEX Apple com card hex
APPACC.M65 Apple com card source
APPCCS.HEX CCS 7710 com card hex
APPCCS.M65 CCS 7710 com card source
APPCPS.HEX CPS com card hex
APPCPS.M65 CPS com card source
APPGS.HEX GS serial port hex
APPGS.M65 GS serial port source
APPHMM.HEX Hayes micro modem card hex
APPHMM.M65 Hayes micro modem card source
APPLE.DOC Complete documentation (it says here)
APPLE.MSS Scribe text formatter source for documentation
APPMAI.HEX Main kermit pgm hex
APPMAI.M65 Main kermit pgm source
APPMAK.UNX Make file for UNIX cross assembly (to assemble Kermit)
APPMSV.HEX Microtec com card hex
APPMSV.M65 Microtec com card source
APPSSC.HEX Super serial com card hex
APPSSC.M65 Super serial com card source
APPXAS.1 65c02 cross assembler for UNIX system part 1
APPXAS.2 65c02 cross assembler for UNIX system part 2
APPXAS.3 65c02 cross assembler for UNIX system part 3
The syntax of the filenames may vary. On UNIX systems, the filenames will be
in lowercase. On VM/CMS systems, the period will be replaced by a space.
Alternate Installation
The main problem exists in getting the hex files onto your diskette as a text
file. But again that is a test of your creativity. If you have a version of
Kermit running then GET or RECIEVE the file as a text file and you are in busi-
ness. Since Kermit has been separated into two assemblies then two hex files
will have to be present on the diskette. Get the main hex file APPMAI.HEX and
select which com card hex you will need. First "exec APPMAI.HEX". Your Apple
(or compatable) will go into monitor and show you *'s for several minutes.
This is the monitor loading the hex into binary. If you get beeps from the
monitor its probably because you didnt get a good copy of the text file. Now
EXEC the com card driver you are going to use. You will have to get back into
basic(aha another test for you,try "3d0G") to do this. And you will see the
monitor loading the com driver. The order of EXEC's is important. The com card
should be loaded last. Next get back into basic and do a "bsave
kermit,A$1000,L$6e00". You may have to specify the drive to do this binary
save, with a slot or drive on the end of the BSAVE (aha another test). You now
run Kermit via "brun kermit".
If you want to customize Kermit for your equipment, the recommended method is
to use file "kermit.init" OR do all your SETs, etc, and then do an "exit". Now
you should be back in BASIC. At this point do a "bsave name,A$1000,L$6e00" and
when you do a "brun name" all your setups will be remembered. NOTE: If you
save your current settings via "bsave kermit ..." you may find that moving that
binary to another type of Apple (e.g. from a //e to an //e+) will not be pos-
sible. So make sure you keep the original binary to move between machine
types.
Since the org is now $1000 if you have been using Kermit and then went back to
basic for some trivial thing a "CALL 4096" should start up Kermit without
having to reload it.
In summary:
1. EXEC APPMAI.HEX
2. Choose the com card driver you will use. For example APPSSC.HEX.
3. 3D0G
4. EXEC APPSSC.HEX
5. BSAVE kermit,A$1000,L$6e00
And you should be in business. Remember there is the command HELP and whenever
you are into a command a "?" will give you the posible options available at
that point of a command. The escape key will finish typing an option if it is
possible. The syntax of all the commands and options only requires enough
characters to make that command or option unique.
1.7. Problems
Installation
NOTE: When using the super serial driver you must have the cards sw6-2 on.
This allows the card to use interupts. The rest of the switches are set from
within Kermit. It appears that you can run your Apple 2 with sw6-2 on and in
99% of the cases will cause no problems. This is because the OS runs with in-
terupts locked out ("sei" in assembly language) and the program must explicitly
give a "cli" for interupts to work (the super serial driver does).
The Microtek driver is a super serial look alike which does not run with inter-
upts. If you have trouble with the super serial driver you might try the MSV
driver. For you people with the MSV-622c card, you might try running a jumper
from the UART 6551 pin 26 to the card edge pin 30. This will enable interupts
just like the SSC sw2-6, and then you can use the super serial driver.
The Prometheus card will work with the Apple com driver. However you will have
to set the switches on the card for baud etc. Evidently this card can not be
programed by the software. If that is not true then here is an oportunity for
you to write a better driver. If you do please pass it on for other Prometheus
users.
Unconfirmed reports have it that the Apple Cat will work with the Apple com
driver. Would appreciate a confirmation.
Some have noted the Apple com card must be initialized via the "IN#x" before
starting Kermit. Ike has now updated this driver and the initialization is now
done within the Apple com driver. Thanks Ike.
Usage
There is the command HELP and whenever you are into a command a "?" will give
you the posible options available at that point of a command. The escape key
will finish typing an option if it is possible. The syntax of all the commands
and options only requires enough characters to make that command or option
unique.
When using flow control you may appear to hang. Type a ^Q (Control-Q) and that
may free you up.
Remember when you use your printer there are a lot of variables here. What was
being sent to the screen now is being sent to your printer. If you were
emulating the VT52 your printer may not know how to handle the escape se-
quences, tabs etc. It may be you can tell the host you are a tty or some such
device that will give carrage returns etc that your printer can handle. Some
printers may require the flow control and delay to get readable printing.
File transfer is very dependent upon parity. Make sure the host and local
parity are the same.
1.8. Customizing Kermit-65
The source code to Kermit-65 is in 6502 Assembler. It has been formatted for a
cross assembler which runs on a unix 2's complement machine. Files appxas.1
thru appxas.3 are the cross assembler for UNIX. Get the files on a UNIX system
and then look at the documentation at the start. They will easily make you a
xasm for Kermit. The file appmak.unx is the makefile to use with the xasm to
reassemble all of Kermit's parts.
Kermit-65 3.x has been separated into two assemblies, the main routines and the
com card routines for the devices shown in Table 1-1. A vector has been set up
in low memory for the two assemblies to communicate. Look at the working com
drivers for tips on how to incorporate your version of the com driver. some
things to note: It is probably best to buffer the input from the remote and to
get input characters from the remote every chance you get. Note the Microtek
SV-622 driver, whenever the input is checked for a character and has a charac-
ter the character is put into the buffer immeadiatly. Also when the output is
checked for ready to output, if the card is not ready to output then it is
checked for a character to input. All this should help prevent losing charac-
ters.
Communications card vector area:
address size module function
1003 byte main This is the baud rate index as follows:
3 - 110
4 - 135.4
5 - 150
6 - 300
7 - 600
8 - 1200
9 - 1800
10 - 2400
11 - 3600
12 - 4800
13 - 7200
14 - 9600
15 - 19200
for example:
if index is 6 then line should be 300 baud
1004 byte unused
1005 word driver Address of a null terminated string.
address should point to a capitalized
string of the drivers id
1007 byte main Com slot in the form $n0 where n is slot #.
1008 byte main Force initialization flag when 0.
init routine should always initialize when
this flag is 0 & then set flag non-zero.
1009 word main Address of the end of Kermit main routine.
100b byte main Flow control is on when high bit is set.
100c word driver Address of the end of the com driver.
1020 3 bytes driver Jump to initialization routine.
1023 3 bytes driver Jump to command routine. A reg has command
0 - hang up the line
$0b - set baud rate
$0c - set break on the line
$91 - do xon on the line
$93 - do xoff on the line
routine returns false (P reg zero flag)
if unable to do command.
1026 3 bytes driver Jump to check for input from the line.
routine returns false (P reg zero flag)
if no character on line
1029 3 bytes driver Jump to get input character from line.
routine returns character in A reg
102c 3 bytes driver Jump to put character in A reg on line.
102f 3 bytes driver Jump to reset com driver.
1040 3 bytes main Jump to Apple ROM wait rtn. microsecs delay
=1/2(26+27A+5A*A) where A is the accumulator
1043 3 bytes main Jump to routine to print null-terminated string.
X reg contains least significant byte of address
Y reg contains most significant byte of address
routine does not issue a carriage return.
1046 3 bytes main Jump to routine to read the keyboard.
A reg contains the character read
1049 3 bytes main Jump to routine to print carrage rtn & line feed.
104f 3 bytes main Jump to routine to set characters parity.
A reg contains the character before and after.
All the routines should return with the "rts" instruction. Routines which can
return a true/false indication should return with the P reg zero flag set ap-
propiately. That is: a "beq" instruction will branch on a false indication and
the "bne" will branch on a true indication. The com driver should start its
routines above the main routines and tell where the end of the com driver is
via location $100c. If your com driver gets too large then the bsave address
would have to be changed when you are saving the binary to diskette. -------
Index
,
Apple II 1
Apple II Keypad 13, 15
CATALOG Command 10
CONNECT Command 7
DELETE Command 10
GET Command 7
MODEM Command 9
RECEIVE Command 7
REMOTE Command 10
SEND Command 6
SERVER Command 10
SET APPLICATION-MODE 11
SET Command 11
SET DEFAULT-DISK 12
SET FILE-TYPE 12
SET KEYBOARD 13
SET KEYPAD 13
SET PRINTER 14
SET PROTOCOL 14
SET SLOT 14
SET TERMINAL 15
TAKE Command 7
VT100 Emulation 15
VT52 Emulation 15
Table of Contents
1. Apple II Kermit 1
1.1. Supported Systems and Devices 2
1.2. The DOS 3.3 File System 2
1.3. The PRODOS File System 4
1.4. Program Operation 4
1.5. Kermit-65 Commands 6
1.7. Problems 21
1.8. Customizing Kermit-65 22
Index i
List of Figures
Figure 1-1: VT100 Keypad on an Apple Keyboard 16
Figure 1-2: VT100 Keypad on an Apple//gs or Equivalent Keypad 17
Figure 1-3: VT52 Keypad on an Apple Keyboard 18
List of Tables
Table 1-1: Apple II Communication Cards Supported by Kermit-65 2
Table 1-2: Kermit-65 Single-Character CONNECT Escape Commands 8
Table 1-3: Apple II/II+ Keyboard Escapes 9
-------
-------